1 using UnityEngine;
2 using
System.Collections;
3
4 namespace
GamePlay
5 {
6     
public class ButtonSkills : MonoBehaviour
7     {
8         
public Sprite[] skillSprites;
9         
public Sprite[] skillSpriteLocks;
10
11         
public GameObject[] buttonSkills;
12         
public GameObject[] boardObjects;
13         
public Sprite boardSprite;
14
15         
private BitmapFont[] fontSkills;
16         
private GameObject[] labels;
17         
private int[] numberSkills = new int[]{0, 0, 0};
18
19         
public GameScreen gameScreen;
20
21         
private int skillNumber = 0;
22
23         
public void Start()
24         {
25             
float[] btX = new float[] {1.75f, 2.65f, 3.55f};
26             
int[] skills = Attr.currentSkills;
27             
//int skillNumber = 0;
28             labels =
new GameObject[3];
29             
for (int i = 0; i < 3; i++)
30             {
31                 
if (skills[i] >= 0)
32                 {
33                     buttonSkills[skillNumber].GetComponent<SpriteRenderer>().sprite = skillSprites[skills[i]];
34                     buttonSkills[skillNumber].AddComponent<SkillRandom>().skillType = SkillRandom.getSkillType(skills[i]);
35                     addClickListener(buttonSkills[skillNumber], skillSprites[skills[i]], skillSpriteLocks[skills[i]]);
36                     boardObjects[skillNumber].GetComponent<SpriteRenderer>().sprite = boardSprite;
37                     labels[skillNumber] =
new GameObject("SkillNumber");
38                     labels[skillNumber].transform.parent = gameObject.transform;
39                     skillNumber++;
40                 }
41             }
42
43             
for (int i = skillNumber - 1; i >= 0; i--)
44             {
45                 Vector3 p = buttonSkills[i].gameObject.transform.localPosition;
46                 buttonSkills[i].gameObject.transform.localPosition =
new Vector3(btX[2 - i], p.y, p.z);
47                 boardObjects[i].transform.localPosition =
new Vector3(btX[2 - i] + 0.2f, p.y - 0.25f, -1);
48
49                 labels[i].transform.localPosition =
new Vector3(btX[2-i] + 0.1f , p.y - 0.35f, -1);
50             }
51             fontSkills =
new BitmapFont[3];
52         }
53
54         
private void addClickListener(GameObject buttonSkill, Sprite enableSprite, Sprite disableSprite)
55         {
56             buttonSkill.AddComponent<InputProcessor>();
57             SkillClickListener skillClickListener = buttonSkill.AddComponent<SkillClickListener>();
58             skillClickListener.setDrawables(enableSprite, disableSprite);
59             skillClickListener.setEnabled(
true);
60
61             
62         }
63
64         
public void setFonts(BitmapFont shopFont)
65         {
66             
for (int i = 0; i < skillNumber; i++)
67             {
68                 
//if (Attr.currentSkills[i] >= 0)
69                 
if (buttonSkills[i].GetComponent<SkillClickListener>() != null)
70                 {
71                     fontSkills[i] =
new BitmapFont(shopFont, labels[i]);
72                     fontSkills[i].setText(
"" + numberSkills[i], 0, 0, "GUI", "GUI");
73                     buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] >
0);
74                 }
75                 
//else
76                 
//{
77                 
// fontSkills[i] = null;
78                 
// if(Attr.currentSkills[i] >= 0)
79                  
// buttonSkills[i].SetActive(false);
80                 
//}
81             }
82         }
83
84         
public void eateSkill(SkillType type)
85         {
86             
for (int i = 0; i < buttonSkills.Length; i++)
87             {
88                 
if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
89                 {
90                     numberSkills[i]++;
91                     fontSkills[i].setText(
"" + numberSkills[i], 0, 0, "GUI", "GUI");
92                     buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] >
0);
93                     
break;
94                 }
95             }
96         }
97
98         
public void shot(SkillType type)
99         {
100             
for (int i = 0; i < buttonSkills.Length; i++)
101             {
102                 
if (buttonSkills[i].GetComponent<SkillRandom>().skillType == type)
103                 {
104                     numberSkills[i]--;
105                     fontSkills[i].setText(
"" + numberSkills[i], 0, 0, "GUI", "GUI");
106                     buttonSkills[i].GetComponent<SkillClickListener>().setEnabled(numberSkills[i] >
0);
107                     
break;
108                 }
109             }
110         }
111     }
112 }


int skillNumber = 0;

if (Attr.currentSkills[i] >= 0)

else

{

fontSkills[i] = null;

if(Attr.currentSkills[i] >= 0)

buttonSkills[i].SetActive(false);

}




Trò chơi đua xe động vật trong UNITY Engine 114.811 lượt xem

Gõ tìm kiếm nhanh...